package com.sfang.common.base.annotations;

import java.lang.annotation.Annotation;

public class AggregationMapping implements AggregationMappingAnnotation {

    public String getAliasAggregation() {
        return aliasAggregation;
    }

    public void setAliasAggregation(String aliasAggregation) {
        this.aliasAggregation = aliasAggregation;
    }

    public String getNameAggregation() {
        return nameAggregation;
    }

    public void setNameAggregation(String nameAggregation) {
        this.nameAggregation = nameAggregation;
    }

    public Integer getSubtypeAggregation() {
        return subtypeAggregation;
    }

    public void setSubtypeAggregation(Integer subtypeAggregation) {
        this.subtypeAggregation = subtypeAggregation;
    }

    public Integer getTypeAggregation() {
        return typeAggregation;
    }

    public void setTypeAggregation(Integer typeAggregation) {
        this.typeAggregation = typeAggregation;
    }

    public String getTermMappingAnnotationsAggregation() {
        return termMappingAnnotationsAggregation;
    }

    public void setTermMappingAnnotationsAggregation(String termMappingAnnotationsAggregation) {
        this.termMappingAnnotationsAggregation = termMappingAnnotationsAggregation;
    }

    String aliasAggregation;
    String nameAggregation;
    Integer subtypeAggregation;
    Integer typeAggregation;
    String termMappingAnnotationsAggregation;

    public AggregationMapping(String alias, String name,
                              Integer type, Integer subtype,
                              String termMappingAnnotations) {
        this.aliasAggregation = alias;
        this.nameAggregation = name;
        this.subtypeAggregation = subtype;
        this.typeAggregation = type;
        this.termMappingAnnotationsAggregation = termMappingAnnotations;
    }

    @Override
    public String name() {
        return nameAggregation;
    }

    @Override
    public String alias() {
        return aliasAggregation;
    }

    @Override
    public int type() {
        return typeAggregation;
    }

    @Override
    public int groupByOrder() {
        return 0;
    }

    @Override
    public String dataType() {
        return null;
    }

    @Override
    public String termMappingAnnotations() {
        return termMappingAnnotationsAggregation;
    }

    @Override
    public int subType() {
        return subtypeAggregation;
    }

    @Override
    public int aggregationType() {
        return 0;
    }

    @Override
    public Class<? extends Annotation> annotationType() {
        return null;
    }
}
